package br.com.academia.controller;

import java.sql.SQLException;

import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.academia.DAO.DAOGenerico;
import br.com.academia.DAO.FuncionarioDAO;
import br.com.academia.DAO.NotificacoesAlunoDAO;
import br.com.academia.DAO.UsuarioDAO;
import br.com.academia.beans.Usuario;
import br.com.academia.util.ConnectionFactory;

@Controller
public class UsuarioController {

	@RequestMapping("/verificaUsuario")
	public String verificaLogin(Usuario usuario, HttpSession session, Model model) throws SQLException {
		if(new UsuarioDAO(new ConnectionFactory().getConnection()).validaUsuario(usuario)) {
			session.setAttribute("usuarioLogado", usuario);
			usuario = new UsuarioDAO(new ConnectionFactory().getConnection()).retornaUsuario(usuario);
			model.addAttribute("funcionario", new FuncionarioDAO(new ConnectionFactory().getConnection()).consultaDadosFuncionario(usuario.getFuncionario_idFuncionario()));
			model.addAttribute("notificacoes", new NotificacoesAlunoDAO(new ConnectionFactory().getConnection()).consultaNotificacoes());
			return "entrada/inicio";
		}
		return "../../index";
	}
	
	@RequestMapping("/inserirUsuario")
	public String cadastrarUsuario(Usuario usuario) throws SQLException, Exception {
		new DAOGenerico<Usuario>(new ConnectionFactory().getConnection()).cadastrar(usuario);
		return "redirect:frmUsuario";
	}
	
	@RequestMapping("/alterarUsuario")
	public String alterarUsuario(Usuario usuario) throws SQLException, Exception {
		new DAOGenerico<Usuario>(new ConnectionFactory().getConnection()).alterar(usuario, "idUsuario");
		return "forward:pesquisaAvancada?tipoPesquisa=usuario";
	}
	
	@RequestMapping("/excluirUsuario")
	public String excluirUsuario(Usuario usuario) throws SQLException, Exception {
		new DAOGenerico<Usuario>(new ConnectionFactory().getConnection()).excluir(usuario, "idUsuario");
		return "forward:pesquisaAvancada?tipoPesquisa=usuario";
	}

}
